import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login'
import Home from '@/views/Home'
import welcome from '@/views/welcome/welcome'
import user from '@/views/user/User.vue'

Vue.use(Router)

let router = new Router({
  routes: [
    {
      path: '/login',
      name: 'Login',
      component: Login
    },
    {
      path: '/',
      name: 'Home',
      component: Home,
      redirect:{path: 'welcome'},
      children: [
        {
          name: 'welcome',
          path: 'welcome',
          component: welcome
        },
        {
          name: 'User',
          path: 'user',
          component: user
        }
      ]
    }

  ]
})

// 只要进行了路由跳转就会触发beforeEach
// 使用router-link进行路由跳转
// 编程式导航this.$router.push('/home')
// 直接在地址栏输入路由路径也可以进行路由跳转
// 注册一个全局守卫作用是在路由跳转前 对路由进行[判断防止未登录的用户跳转到其他页面 next（）是个函数
// 通过next()函数的调用放行
router.beforeEach((to, from, next) => {
  let token = localStorage.getItem('mytoken')
  // 如果已经登陆 那我不干涉你 让你随便访问
  if(token){
    // 放行
    next()
  }else {
    if(to.path !== '/login'){
      // 如果没有登录，但你访问其他需要登录的页面，那我就让你跳到登录页面去
      next({path: '/login'})  
    }else {
         // 如果没有登录，但你访问的login，那就不干涉你，让你访问
      next()
    }
  }
})
export default router
